// pages/search/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    isCollapse:true, //true点击乐展开 false点击了收起
    isDelStaus:false,
    hisCopyList:[], //非展开数据
    hisList:[], //所有数据
    keywords:""

  },
  close(e){
    console.log(e,e.target.dataset.index)
    const {index} = e.target.dataset
    // 1.删除 hisList 对应的成员 更新hiscopyList
    const {hisList} = this.data
    hisList.splice(index,1)
    this.setData({hisList,hisCopyList:hisList.slice(0,4)})
    // 2. 删除后防止页面刷新后数据重新回显 更新本地存储
  },
  removeAll(){
    this.setData({hisList:[],hisCopyList:[]})
    try {
      wx.setStorageSync('history',hisList)
    } catch (e) {
    }
    
  },
  //1.用双向数据绑顶(早期双向数据绑定不行 - 单向数据流value-bindinput-setData) 
  //2.form表单触发
  confirm(){
    // console.log(this.data.keywords)
    const keywords = this.data.keywords.trim()
    console.log(keywords)
    //是否为空的判断
    if(!keywords){
      // 输入搜索的内容为空时，提示
      wx.showToast({
        title: '不能为空',
        icon: 'none',
        duration: 2000
      })
      return 
    }
    this.setCache(keywords)
    wx.navigateTo({
      url: `/pages/result/index?keywords=${keywords}`,
    })
  },
  // 点击了历史记录
  tapHistory(e){
    console.log(e.target.dataset)
    this.setData({
      keywords:e.target.dataset.val
    })
    this.confirm()
  },
  //存储数据
  setCache(val){
    //1.将给的val放入到this.data.hislist中
    const {hisList} = this.data
    // 判断原来的数据中已经存在的
    const index = hisList.findIndex(item=>item === val)
    if(index>=0){
      hisList.splice(index,1)
    }
    hisList.unshift(val)
    //添加历史记录（限制最多存储100条）
    if (hisList.length>100) {
      //删除末尾成员
      hisList.pop()
    }
   
//2.将当前数据存储本地
try {
  wx.setStorageSync('history',hisList )
} catch (e) {
  console.log(e)
}
 //3.更新视图
 this.setData({
    hisList,
    hisCopyList:hisList.slice(0,4)
 })
  },
  changeVal(e){
    this.setData({
      keywords:e.detail.value
    })
  },
  //过滤展示
  filterShow(){
    console.log(this.data.hisList)
    //获取本地数据
    // const localData = [
    //   "测试","测试","测试","测试","测试",
    // ]
    const localData = wx.getStorageSync("history") || []
    this.setData({
      hisCopyList:localData.slice(0,4),
      hisList:localData
    })
  },
//点击展开
toggle(){
  const isCollapse = !this.data.isCollapse
  this.setData({
    isCollapse
  })
},
//切换删除状态:页面中事件传参 
//1.页面组件属性 data-名称="值"  
//2.事件函数中获取第一个函数比如 e.target.dataset.名称
toggleDel(e){
  const {flag:isCollapse} = e.target.dataset
  const isDelStaus = !this.data.isDelStaus
  this.setData({
    isDelStaus,
    isCollapse
  })
},
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.filterShow()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})